home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / dl_serie / news / 182 / easy_pgp / tos2gem / tos2gem.h < prev    next >
C/C++ Source or Header  |  1995-11-25  |  4KB  |  145 lines

  1. /*
  2.  * tos2gem.h dated 21.06.1995
  3.  *
  4.  * Author:
  5.  * Thomas Binder
  6.  *
  7.  * Purpose:
  8.  * Contains the stucture of the TOS2GEM Cookie.
  9.  *
  10.  * History:
  11.  * 30.08.1994: Creation
  12.  * 02.09.1994: Textbuffer- and screen-offset are 
  13.  *             now handled as part of the Cookie-
  14.  *             structure.
  15.  * 03.09.1994: New element 'x_vis'.
  16.  *             New element 'switch_cursor'.
  17.  * 04.09.1994: New element 'reserve'.
  18.  *             'switch_cursor' now called 
  19.  *             'switch_output'.
  20.  * 05.09.1994: 'switch_output' is no longer 
  21.  *             passed parameters, but will 
  22.  *             'switch' correctly.
  23.  * 11.10.1994: The first reserved field is now 
  24.  *             used and is called 'cursor_handle'.
  25.  *             If this is larger than zero (which 
  26.  *             ensures compatibility with programs 
  27.  *             that don't know about it), then 
  28.  *             this VDI-handle is used for 
  29.  *             drawing the cursor, which speeds 
  30.  *             up output appreciably.
  31.  *             Cookie-structure appearance is 
  32.  *             now clearer.
  33.  * 05.11.1994: Offset values added.
  34.  * 02.01.1995: Constant RESERVED_SIZE added and 
  35.  *             the Cookie-structure adapted 
  36.  *             accordingly.
  37.  * 29.01.1995: New element 'buffer_output'.
  38.  * 31.01.1995: Commennting of ther new element.
  39.  * 05.04.1995: New element 'color'. In addition 
  40.  *             the structure has been changed so 
  41.  *             that no problems should arise with 
  42.  *             C-compilers that arrange comma-
  43.  *             delimited elements in reverse order.
  44.  *             Furthermore the header file can 
  45.  *             now be included several times 
  46.  *             without problems arising.
  47.  * 21.06.1995: New element 'stats'.
  48.  */
  49.  
  50. #ifndef _TOS2GEM_H
  51. #define _TOS2GEM_H
  52.  
  53. /* Number of fields in reserved-field */
  54. #define RESERVED_SIZE   2
  55.  
  56. /* The Cookie-structure */
  57. typedef struct
  58. {
  59. /* Version date (GEMDOS format) */
  60.    WORD  date;                    /* 0x00 */
  61.  
  62. /* Reservation function */
  63.    WORD  (*reserve)(void);        /* 0x02 */
  64.  
  65. /* Initialisation function */
  66.    WORD  (*init)(void);           /* 0x06 */
  67.  
  68. /* Switching function */
  69.    WORD  (*deinit)(void);         /* 0x0a */
  70.  
  71. /* Output redirection switching function */
  72.    WORD  (*switch_output)(void);  /* 0x0e */
  73.  
  74. /* Pointer to text buffer */
  75.    char  *text_buffer;            /* 0x12 */
  76.  
  77. /* Maximum number of buffer lines */
  78.    WORD  max_lines;               /* 0x16 */
  79.  
  80. /* Size opf the 'Text' screen */
  81.    WORD  x_size;                  /* 0x18 */
  82.    WORD  y_size;                  /* 0x1a */
  83.  
  84. /* How many columns are visible? */
  85.    WORD  x_vis;                   /* 0x1c */
  86.  
  87. /* How many lines are visible? */
  88.    WORD  y_vis;                   /* 0x1e */
  89.  
  90. /* Upper left corner of screen (in pixels!) */
  91.    WORD  x_off;                   /* 0x20 */
  92.    WORD  y_off;                   /* 0x22 */
  93.  
  94. /* Maximum dimensions of a character (in pixels!) */
  95.    WORD  char_w;                  /* 0x24 */
  96.    WORD  char_h;                  /* 0x26 */
  97.  
  98. /* VDI-Workstation  to be used */
  99.    WORD  vdi_handle;              /* 0x28 */
  100.  
  101. /* Offset of the visible portion */
  102.    WORD  y_offset;                /* 0x2a */
  103.  
  104. /* Offset within the Text buffer */
  105.    WORD  text_offset;             /* 0x2c */
  106.  
  107. /*
  108.  * When > 0: VDI handle for drawing the cursor
  109.  * (must != vdi_handle!)
  110.  */
  111.    WORD  cursor_handle;           /* 0x2e */
  112.  
  113. /*
  114.  * When > 0: The number of characters that should first 
  115.  * of all be buffered and only output when required
  116.  */
  117.    WORD  buffer_output;           /* 0x30 */
  118.  
  119. /*
  120.  * When 1: TOS2GEM works with 'compatible'
  121.  * VT52 colour support.  When > 1: TOS2GEM
  122.  * uses VDI colour index compatible colours
  123.  */
  124.    WORD  color;                   /* 0x32 */
  125.  
  126. /*
  127.  * Internal status variables, whose significance 
  128.  * is not explained further. They are set when 
  129.  * switching off redirection, and read out on 
  130.  * re-activation via 'switch_output'.
  131.  * The point of this: It makes possible for 
  132.  * applications to release TOS2GEM for the time 
  133.  * being and later continue using it in exactly 
  134.  * the same state (see docs).
  135.  */
  136.    WORD  stats[5];                /* 0x34 */
  137.  
  138. /* Reserved at present, set to 0  */
  139.    WORD  reserved[RESERVED_SIZE]; /* 0x3e */
  140. } TOS2GEM_COOKIE;
  141.  
  142. #endif
  143.  
  144. /* EOF */
  145.